﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace FuncionarioRefatorado
{
	public class FuncionarioFabrica
	{
		public static FuncionarioBase CriarFuncionarioPorContratacao(string nome, Contratacao contratacao)
		{
			switch (contratacao)
			{
				case Contratacao.PJ:
					return new FuncionarioPJ(nome);
				case Contratacao.CLT:
					return new FuncionarioCLT(nome);
				case Contratacao.CargoConfianca:
					return new FuncionarioConfianca(nome);
				case Contratacao.Estagiario:
					return new FuncionarioEstagio(nome);
				default:
					throw new Exception("Funcionário com tipo de contratação inválida");
			}
		}
	}
}
